﻿namespace ScrumFactory.Services
{
    using System;
    using System.Collections.Generic;
    using System.ServiceModel;

    [ServiceContract()]
    public interface IProjectsService
    {
        [OperationContract]
        ICollection<Project> GetAllProjects();

        [OperationContract]
        ICollection<Project> GetRunningProjects();

        [OperationContract]
        Project GetProject(string projectUId);

        [OperationContract]
        ICollection<Role> GetProjectRoles(string projectUId);

        [OperationContract]
        void UpdateProjectRole(string projectUId, Role role);

        [OperationContract]
        void DeleteProjectRole(string projectUId, string roleUId);

        [OperationContract]
        void CreateProjectRole(string projectUId, Role role);

        [OperationContract]
        void CreateProject(Project project);

        [OperationContract]
        void UpdateProject(Project project);

        [OperationContract]
        void AddSprint(string projectUId, Sprint sprint);

        [OperationContract]
        ICollection<Sprint> UpdateSprint(string projectUId, Sprint sprint);

        [OperationContract]
        ICollection<Sprint> GetSprints(string projectUId);
    }
}
